home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / pcboard / bcfal11b.zip / AREA.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-07-08  |  12KB  |  806 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Integer  INTEGER001
  26.     Integer  INTEGER002
  27.     Integer  INTEGER003
  28.     Integer  INTEGER004
  29.     Integer  INTEGER005
  30.     Integer  INTEGER006
  31.     Integer  INTEGER007
  32.     Integer  INTEGER008
  33.     Integer  INTEGER009
  34.     Integer  INTEGER010
  35.     Integer  INTEGER011
  36.     Integer  INTEGER012
  37.     Integer  INTEGER013
  38.     Integer  INTEGER014
  39.     Integer  INTEGER015
  40.     Integer  INTEGER016
  41.     Integer  INTEGER017
  42.     Integer  INTEGER018
  43.     Integer  INTEGER019
  44.     Integer  INTEGER020
  45.     Integer  INTEGER021
  46.     Integer  INTEGER022
  47.     Integer  INTEGER023
  48.     Integer  INTEGER024
  49.     Integer  INTEGER025
  50.     Integer  INTEGER026
  51.     Integer  INTEGER027
  52.     Integer  INTEGER028
  53.     Integer  INTEGER029
  54.     Integer  INTEGER030
  55.     Integer  INTEGER031
  56.     Integer  INTEGER032
  57.     Integer  INTEGER033
  58.     Integer  INTEGER034
  59.     Integer  INTEGER035
  60.     Integer  INTEGER036
  61.     String   STRING001
  62.     String   STRING002
  63.     String   STRING003
  64.     String   STRING004
  65.     String   TSTRING005(15)
  66.     String   STRING006
  67.     String   STRING007
  68.     String   STRING008
  69.     String   STRING009
  70.     String   STRING010
  71.     String   STRING011
  72.     String   STRING012
  73.     String   STRING013
  74.     String   STRING014
  75.     String   STRING015
  76.     String   STRING016
  77.     String   STRING017
  78.     String   STRING018
  79.     String   STRING019
  80.     String   STRING020
  81.     String   STRING021
  82.     String   STRING022
  83.     String   STRING023
  84.     String   TSTRING024(1)
  85.     String   STRING025
  86.     String   STRING026
  87.     String   STRING027
  88.     String   STRING028
  89.     String   STRING029
  90.     String   STRING030
  91.     String   TSTRING031(23)
  92.     Int      INT001
  93.     Int      INT002
  94.     BigStr   BIGSTR001
  95.  
  96. ;------------------------------------------------------------------------------
  97.  
  98.     If (TokCount() > 0) Then
  99.         STRING001 = GetToken()
  100.         STRING002 = GetToken()
  101.         While (STRING002 <> "") Do
  102.             STRING001 = STRING001 + " " + STRING002
  103.             STRING002 = GetToken()
  104.         EndWhile
  105.         KbdStuff "F " + STRING001
  106.         End
  107.     Endif
  108.     STRING006 = PPEPath() + "POS" + String(PcbNode())
  109.     Gosub LABEL008
  110.     :LABEL001
  111.     STRING004 = PPEPath()
  112.     STRING003 = GetToken()
  113.     STRING013 = GetToken()
  114.     If (STRING013 <> "") Then
  115.         INTEGER002 = STRING013
  116.     Else
  117.         INTEGER002 = 1
  118.     Endif
  119.     If (STRING003 == "") Then
  120.         PrintLn "No configuration parameter given"
  121.         Wait
  122.         End
  123.     Endif
  124.     If (Exist(STRING003)) Goto LABEL002
  125.     If (Exist(STRING004 + STRING003)) Then
  126.         STRING003 = STRING004 + STRING003
  127.     Else
  128.         PrintLn "Cannot find configuration ", STRING003
  129.         Wait
  130.         End
  131.     Endif
  132.     :LABEL002
  133.     If (AnsiOn()) Goto LABEL003
  134.     PrintLn 
  135.     PrintLn "No ansi capability, exiting lightbar kit"
  136.     End
  137.     :LABEL003
  138.     Tokenize ReadLine(STRING003, 1)
  139.     INTEGER003 = GetToken()
  140.     STRING012 = GetToken()
  141.     BOOLEAN003 = 0
  142.     BOOLEAN002 = 0
  143.     If (INTEGER003 > 15) Then
  144.         Redim TSTRING005, INTEGER003
  145.     Endif
  146.     INTEGER006 = 1
  147.     STRING009 = Chr(13)
  148.     STRING010 = Chr(27)
  149.     BOOLEAN001 = IsNonStop()
  150.     StartDisp 1
  151.     INTEGER006 = INTEGER002
  152.     INTEGER007 = INTEGER003
  153.     DefColor
  154.     DefColor
  155.     INTEGER010 = 3
  156.     For INTEGER008 = 1 To INTEGER003
  157.         Tokenize ReadLine(STRING003, INTEGER008 + 1)
  158.         INTEGER004 = GetToken()
  159.         STRING011 = GetToken()
  160.         If (STRING011 == "C") Then
  161.             INTEGER005 = GetY()
  162.         Else
  163.             INTEGER005 = STRING011
  164.         Endif
  165.         INTEGER001 = GetToken()
  166.         TSTRING005(INTEGER008) = ScrText(INTEGER004, INTEGER005, INTEGER001, 1)
  167.         INTEGER010 = INTEGER010 + 3
  168.     Next
  169.     INTEGER014 = 1
  170.     INTEGER013 = 1 + INTEGER003 - 1
  171.     Gosub LABEL007
  172.     Print STRING012, StripAtx(TSTRING005(INTEGER006))
  173.     :LABEL004
  174.     STRING007 = Inkey()
  175.     Select Case (STRING007)
  176.         Case "LEFT", ","
  177.             Gosub LABEL007
  178.             Print TSTRING005(INTEGER006)
  179.             If (INTEGER006 == 1) Then
  180.                 INTEGER006 = INTEGER007
  181.             Else
  182.                 INTEGER006 = INTEGER006 - 1
  183.             Endif
  184.             Gosub LABEL007
  185.             Print STRING012, StripAtx(TSTRING005(INTEGER006))
  186.             Goto LABEL004
  187.         Case "RIGHT", "."
  188.             Gosub LABEL007
  189.             Print TSTRING005(INTEGER006)
  190.             If (INTEGER006 == INTEGER007) Then
  191.                 INTEGER006 = 1
  192.             Else
  193.                 INTEGER006 = INTEGER006 + 1
  194.             Endif
  195.             Gosub LABEL007
  196.             Print STRING012, StripAtx(TSTRING005(INTEGER006))
  197.             Goto LABEL004
  198.         Case "?"
  199.             Tokenize ReadLine(STRING003, INTEGER006 + 1)
  200.             INTEGER004 = GetX()
  201.             INTEGER005 = GetY()
  202.             STRING011 = GetToken()
  203.             STRING011 = GetToken()
  204.             STRING011 = GetToken()
  205.             STRING011 = ""
  206.             STRING011 = GetToken()
  207.             If (STRING011 == "NOHLP") Goto LABEL004
  208.             If (STRING011 <> "") Then
  209.                 STRING008 = STRING011
  210.                 If (Exist(STRING008)) Then
  211.                     Goto LABEL005
  212.                     Goto LABEL005
  213.                 Endif
  214.                 If (Exist(HelpPath() + "hlp" + STRING008)) Then
  215.                     STRING008 = HelpPath() + "hlp" + STRING008
  216.                     Goto LABEL005
  217.                     Goto LABEL005
  218.                 Endif
  219.                 If (Exist(STRING004 + STRING008)) Then
  220.                     STRING008 = STRING004 + STRING008
  221.                     Goto LABEL005
  222.                 Endif
  223.             Endif
  224.             :LABEL005
  225.             AnsiPos 1, 23
  226.             SaveScrn
  227.             StartDisp 2
  228.             DefColor
  229.             Cls
  230.             DispFile STRING008, 1 + 4
  231.             Wait
  232.             StartDisp 1
  233.             RestScrn
  234.             AnsiPos INTEGER004, INTEGER005
  235.             Goto LABEL004
  236.         Case STRING009
  237.             INTEGER008 = INTEGER006
  238.             INTEGER004 = GetX()
  239.             INTEGER005 = GetY()
  240.             Tokenize ReadLine(STRING003, INTEGER006 + 1)
  241.             INTEGER004 = GetToken()
  242.             STRING011 = GetToken()
  243.             If (STRING011 == "C") Then
  244.                 INTEGER005 = GetY()
  245.             Else
  246.                 INTEGER005 = STRING011
  247.             Endif
  248.             AnsiPos INTEGER004, INTEGER005
  249.             Print TSTRING005(INTEGER006)
  250.             Goto LABEL006
  251.             Return
  252.             Goto LABEL004
  253.         Case "HOME"
  254.             Gosub LABEL007
  255.             Print TSTRING005(INTEGER006)
  256.             INTEGER006 = INTEGER014
  257.             Gosub LABEL007
  258.             Print STRING012, StripAtx(TSTRING005(INTEGER006))
  259.             Goto LABEL004
  260.         Case "END"
  261.             Gosub LABEL007
  262.             Print TSTRING005(INTEGER006)
  263.             INTEGER006 = INTEGER013
  264.             Gosub LABEL007
  265.             Print STRING012, StripAtx(TSTRING005(INTEGER006))
  266.             Goto LABEL004
  267.         Case STRING010
  268.             If (!BOOLEAN002) Goto LABEL004
  269.             DefColor
  270.             If (BOOLEAN003) Then
  271.                 DefColor
  272.                 Cls
  273.             Endif
  274.             If (!BOOLEAN001) StartDisp 2
  275.             End
  276.         Case ""
  277.             If ((((STRING007 >= "0") && (STRING007 <= "9")) || (Upper(STRING007) == "U")) || (Upper(STRING007) == "A")) Then
  278.                 KbdStuff "C" + STRING007
  279.                 Goto LABEL004
  280.             Endif
  281.             INTEGER010 = (INTEGER006 + 1) * 3
  282.             INTEGER011 = INTEGER010 - 3
  283.             If ((STRING007 == "UP") || (STRING007 == "DOWN")) Then
  284.                 KbdStuff "S"
  285.                 Goto LABEL004
  286.             Endif
  287.             For INTEGER008 = INTEGER006 To INTEGER007
  288.                 If (Upper(Left(StripAtx(TSTRING005(INTEGER008)), 1)) == Upper(STRING007)) Then
  289.                     Gosub LABEL007
  290.                     Print TSTRING005(INTEGER006)
  291.                     INTEGER006 = INTEGER008
  292.                     Goto LABEL006
  293.                 Endif
  294.                 INTEGER010 = INTEGER010 + 3
  295.             Next
  296.             INTEGER010 = INTEGER014 * 3
  297.             For INTEGER008 = 1 To INTEGER006 - 1
  298.                 If (Upper(Left(StripAtx(TSTRING005(INTEGER008)), 1)) == Upper(STRING007)) Then
  299.                     Gosub LABEL007
  300.                     Print TSTRING005(INTEGER006)
  301.                     INTEGER006 = INTEGER008
  302.                     Goto LABEL006
  303.                 Endif
  304.                 INTEGER010 = INTEGER010 + 3
  305.             Next
  306.             Goto LABEL004
  307.     End Select
  308.     Goto LABEL004
  309.     :LABEL006
  310.     DefColor
  311.     Return
  312.     Return
  313.     :LABEL007
  314.     Tokenize ReadLine(STRING003, INTEGER006 + 1)
  315.     INTEGER004 = GetToken()
  316.     STRING011 = GetToken()
  317.     If (STRING011 == "C") Then
  318.         INTEGER005 = GetY()
  319.     Else
  320.         INTEGER005 = STRING011
  321.     Endif
  322.     AnsiPos INTEGER004, INTEGER005
  323.     Return
  324.     :LABEL008
  325.     DefColor
  326.     Cls
  327.     STRING014 = PPEPath() + "graph\atext"
  328.     If (LangExt() <> "") Then
  329.         If (Exist(STRING014 + LangExt())) STRING014 = STRING014 + LangExt()
  330.     Endif
  331.     BOOLEAN005 = 0
  332.     BOOLEAN004 = 0
  333.     STRING023 = Chr(13)
  334.     INT001 = 1
  335.     INTEGER015 = CurConf()
  336.     STRING018 = PPEPath() + "area.cfg"
  337.     Tokenize ReadLine(STRING018, 1)
  338.     INTEGER017 = GetToken()
  339.     INTEGER024 = GetToken()
  340.     INTEGER025 = GetToken()
  341.     INTEGER026 = GetToken()
  342.     INTEGER027 = GetToken()
  343.     INTEGER029 = GetToken()
  344.     INTEGER030 = GetToken()
  345.     STRING022 = GetToken()
  346.     STRING025 = GetToken()
  347.     STRING027 = GetToken()
  348.     STRING021 = ReadLine(STRING014, 1)
  349.     STRING030 = Upper(ReadLine(STRING018, 2))
  350.     If ((STRING030 <> "S") && (STRING030 <> "NONE")) Then
  351.         If ((Len(STRING030) == 6) && ValDate(STRING030)) Goto LABEL009
  352.         STRING030 = Strip(String(ToDate(ToInteger(Date()) - STRING030)), "-")
  353.     Endif
  354.     :LABEL009
  355.     Redim TSTRING024, INTEGER017
  356.     STRING015 = PPEPath() + "dirs\dir" + String(INTEGER015)
  357.     STRING016 = PPEPath() + "dirs\menu" + String(INTEGER015)
  358.     STRING017 = PPEPath() + "dirs\ftr" + String(INTEGER015)
  359.     INTEGER035 = Len(StripAtx(ReadLine(STRING015, 1)))
  360.     INTEGER018 = 0
  361.     INTEGER016 = 1
  362.     StartDisp 1
  363.     DispFile STRING016, 1 + 4
  364.     INTEGER019 = INTEGER024
  365.     INTEGER020 = INTEGER025
  366.     :LABEL010
  367.     INTEGER031 = INTEGER018 + 1
  368.     INTEGER036 = INTEGER018
  369.     For INTEGER008 = 1 To INTEGER017
  370.         Inc INTEGER018
  371.         STRING019 = ReadLine(STRING015, INTEGER018)
  372.         If (STRING019 == "") Then
  373.             Dec INTEGER018
  374.             BOOLEAN004 = 1
  375.             If (INT001) Goto LABEL012
  376.             If (BOOLEAN005) Goto LABEL011
  377.             Gosub LABEL027
  378.             BOOLEAN005 = 1
  379.             :LABEL011
  380.             For INTEGER009 = INTEGER008 To INTEGER017
  381.                 AnsiPos INTEGER019 - 1, INTEGER020 + INTEGER009 - 1
  382.                 Print STRING027, " ", STRING026
  383.             Next
  384.             :LABEL012
  385.             Break
  386.         Endif
  387.         AnsiPos INTEGER019 - 1, INTEGER020 + INTEGER008 - 1
  388.         Print STRING027, " ", STRING019
  389.     Next
  390.     If (ReadLine(STRING015, INTEGER018 + 1) == "") BOOLEAN004 = 1
  391.     If (INT001) Then
  392.         INT001 = 0
  393.         INTEGER022 = INTEGER026
  394.         INTEGER023 = INTEGER027
  395.         AnsiPos INTEGER022, INTEGER023
  396.         Print ReplaceStr(STRING021, "%DATE%", Upper(STRING030))
  397.         INTEGER028 = GetX()
  398.     Endif
  399.     If (BIGSTR001 <> "") Then
  400.         Tokenize BIGSTR001
  401.         While (1) Do
  402.             STRING028 = GetToken()
  403.             If (STRING028 == "") Break
  404.             If ((STRING028 >= INTEGER031) && (STRING028 <= INTEGER018)) Then
  405.                 If (ToInteger(STRING028) % INTEGER017 == 0) Then
  406.                     AnsiPos INTEGER029 - 1, INTEGER020 + INTEGER017 - 1
  407.                     Goto LABEL013
  408.                 Endif
  409.                 AnsiPos INTEGER029 - 1, INTEGER020 + ToInteger(STRING028) % INTEGER017 - 1
  410.                 :LABEL013
  411.                 Print STRING025
  412.             Endif
  413.         EndWhile
  414.     Endif
  415.     INTEGER021 = INTEGER008
  416.     AnsiPos INTEGER022, INTEGER023
  417.     :LABEL014
  418.     Tokenize PPEPath() + "lb.cfg" + " " + String(INTEGER016)
  419.     Gosub LABEL001
  420.     Select Case (INTEGER006)
  421.         Case 1
  422.             INTEGER016 = 1
  423.             If (!BOOLEAN004) Goto LABEL010
  424.         Case 2
  425.             INTEGER016 = 2
  426.             If (INTEGER018 > INTEGER017) Then
  427.                 If (BOOLEAN004) BOOLEAN004 = 0
  428.                 If (INTEGER018 % INTEGER017 <> 0) Then
  429.                     INTEGER018 = INTEGER018 - INTEGER017 - INTEGER018 % INTEGER017
  430.                     Goto LABEL015
  431.                 Endif
  432.                 INTEGER018 = INTEGER018 - 2 * INTEGER017
  433.                 :LABEL015
  434.                 Goto LABEL010
  435.             Endif
  436.         Case 3
  437.             INTEGER016 = 3
  438.             AnsiPos INTEGER022, INTEGER023
  439.             Print Space(INTEGER028 - INTEGER022 + 1)
  440.             AnsiPos INTEGER022, INTEGER023
  441.             STRING020 = ""
  442.             InputStr ReadLine(STRING014, 2) + "_", STRING020, 7, 60, Mask_Ascii(), 8
  443.             INTEGER028 = GetX()
  444.             If (STRING020 <> "") Then
  445.                 FreshLine
  446.                 DefColor
  447.                 AnsiPos 1, 23
  448.                 Gosub LABEL028
  449.                 If (STRING020 <> "") Then
  450.                     If (Upper(STRING030) <> "NONE") Then
  451.                         If (Upper(STRING030) == "S") Then
  452.                             Dir "N S " + STRING020
  453.                             Goto LABEL016
  454.                         Endif
  455.                         Dir "N " + STRING030 + " " + STRING020
  456.                         :LABEL016
  457.                         Goto LABEL017
  458.                     Endif
  459.                     Dir STRING020
  460.                 Endif
  461.                 :LABEL017
  462.                 Gosub LABEL029
  463.             Endif
  464.             AnsiPos INTEGER022, INTEGER023
  465.             Print Space(INTEGER028 - INTEGER022 + 1)
  466.             AnsiPos INTEGER022, INTEGER023
  467.             Print ReplaceStr(STRING021, "%DATE%", Upper(STRING030))
  468.             INTEGER028 = GetX()
  469.         Case 4
  470.             End
  471.         Case 5
  472.             INTEGER016 = 5
  473.             AnsiPos INTEGER022, INTEGER023
  474.             Print Space(INTEGER028 - INTEGER022 + 1)
  475.             AnsiPos INTEGER022, INTEGER023
  476.             Print ReadLine(STRING014, 3)
  477.             INTEGER028 = GetX()
  478.             Gosub LABEL022
  479.             DefColor
  480.             AnsiPos INTEGER022, INTEGER023
  481.             Print Space(INTEGER028 - INTEGER022 + 1)
  482.             AnsiPos INTEGER022, INTEGER023
  483.             Print ReplaceStr(STRING021, "%DATE%", Upper(STRING030))
  484.             INTEGER028 = GetX()
  485.         Case 6
  486.             INTEGER016 = 6
  487.             If (BIGSTR001 <> "") Then
  488.                 INTEGER033 = GetX()
  489.                 INTEGER034 = GetY()
  490.                 AnsiPos 1, 23
  491.                 DefColor
  492.                 Gosub LABEL028
  493.                 If (Upper(STRING030) <> "NONE") Then
  494.                     If (Upper(STRING030) == "S") Then
  495.                         Dir "N S " + BIGSTR001
  496.                         Goto LABEL018
  497.                     Endif
  498.                     Dir "N " + STRING030 + " " + BIGSTR001
  499.                     :LABEL018
  500.                     Goto LABEL019
  501.                 Endif
  502.                 Dir BIGSTR001
  503.                 :LABEL019
  504.                 Gosub LABEL029
  505.                 DefColor
  506.                 AnsiPos INTEGER033, INTEGER034
  507.             Endif
  508.         Case 7
  509.             INTEGER016 = 7
  510.             If (BIGSTR001 == "") Goto LABEL014
  511.             INTEGER033 = GetX()
  512.             INTEGER034 = GetY()
  513.             AnsiPos INTEGER022, INTEGER023
  514.             Print Space(INTEGER028 - INTEGER022 + 1)
  515.             AnsiPos INTEGER022, INTEGER023
  516.             STRING028 = Upper(YesChar())
  517.             InputYN ReadLine(STRING014, 5), STRING028, 7
  518.             INTEGER028 = GetX() + 2
  519.             If (Upper(STRING028) <> Upper(YesChar())) Then
  520.                 AnsiPos INTEGER022, INTEGER023
  521.                 Print Space(INTEGER028 - INTEGER022 + 1)
  522.                 AnsiPos INTEGER022, INTEGER023
  523.                 Print ReplaceStr(STRING021, "%DATE%", STRING030)
  524.                 INTEGER028 = GetX()
  525.                 AnsiPos INTEGER033, INTEGER034
  526.                 Goto LABEL014
  527.             Endif
  528.             If (BIGSTR001 <> "") Then
  529.                 Tokenize BIGSTR001
  530.                 While (1) Do
  531.                     STRING028 = GetToken()
  532.                     If (STRING028 == "") Break
  533.                     If ((STRING028 >= INTEGER031) && (STRING028 <= INTEGER018)) Then
  534.                         If (ToInteger(STRING028) % INTEGER017 == 0) Then
  535.                             AnsiPos INTEGER029 - 1, INTEGER020 + INTEGER017 - 1
  536.                             Goto LABEL020
  537.                         Endif
  538.                         AnsiPos INTEGER029 - 1, INTEGER020 + ToInteger(STRING028) % INTEGER017 - 1
  539.                         :LABEL020
  540.                         Print STRING027, Space(1)
  541.                     Endif
  542.                 EndWhile
  543.             Endif
  544.             BIGSTR001 = ""
  545.             AnsiPos INTEGER022, INTEGER023
  546.             Print Space(INTEGER028 - INTEGER022 + 1)
  547.             AnsiPos INTEGER022, INTEGER023
  548.             Print ReplaceStr(STRING021, "%DATE%", STRING030)
  549.             INTEGER028 = GetX()
  550.             AnsiPos INTEGER033, INTEGER034
  551.         Case 8
  552.             INTEGER016 = 8
  553.             AnsiPos INTEGER022, INTEGER023
  554.             Print Space(INTEGER028 - INTEGER022 + 1)
  555.             AnsiPos INTEGER022, INTEGER023
  556.             STRING020 = ""
  557.             InputStr ReadLine(STRING014, 4), STRING020, 7, 6, Mask_Num() + "SN", 8 + 2
  558.             INTEGER028 = GetX() + 7
  559.             Select Case (STRING020)
  560.                 Case "S"
  561.                     STRING030 = "S"
  562.                 Case "N"
  563.                     STRING030 = "NONE"
  564.                 Case ""
  565.                     If ((Len(STRING020) == 6) && ValDate(STRING020)) Then
  566.                         STRING030 = STRING020
  567.                         Goto LABEL021
  568.                     Endif
  569.                     STRING030 = Strip(String(ToDate(ToInteger(Date()) - STRING020)), "-")
  570.             End Select
  571.             :LABEL021
  572.             AnsiPos INTEGER022, INTEGER023
  573.             Print Space(INTEGER028 - INTEGER022 + 1)
  574.             AnsiPos INTEGER022, INTEGER023
  575.             Print ReplaceStr(STRING021, "%DATE%", Upper(STRING030))
  576.             INTEGER028 = GetX()
  577.         Case 0
  578.     End Select
  579.     Goto LABEL014
  580.     End
  581.     :LABEL022
  582.     DefColor
  583.     INTEGER033 = GetX()
  584.     INTEGER034 = GetY()
  585.     If (INTEGER018 % INTEGER017 <> 0) Then
  586.         INTEGER031 = INTEGER018 - INTEGER018 % INTEGER017 + 1
  587.     Else
  588.         INTEGER031 = INTEGER018 - INTEGER017 + 1
  589.     Endif
  590.     INTEGER021 = INTEGER031
  591.     INTEGER032 = INTEGER020
  592.     INTEGER012 = 0
  593.     For INTEGER011 = INTEGER031 To INTEGER018
  594.         TSTRING024(INTEGER011 - INTEGER031) = ScrText(INTEGER029, INTEGER020 + INTEGER012, INTEGER030, 1)
  595.         Inc INTEGER012
  596.     Next
  597.     AnsiPos INTEGER029, INTEGER032
  598.     Print STRING022, StripAtx(TSTRING024(0))
  599.     :LABEL023
  600.     STRING020 = Inkey()
  601.     Select Case (STRING020)
  602.         Case "DOWN", "RIGHT", ">"
  603.             AnsiPos INTEGER029, INTEGER032
  604.             Print TSTRING024(INTEGER032 - INTEGER020)
  605.             If (INTEGER021 == INTEGER018) Then
  606.                 INTEGER021 = INTEGER031
  607.                 INTEGER032 = INTEGER020
  608.             Else
  609.                 Inc INTEGER021
  610.                 Inc INTEGER032
  611.             Endif
  612.             AnsiPos INTEGER029, INTEGER032
  613.             Print STRING022, StripAtx(TSTRING024(INTEGER032 - INTEGER020))
  614.             Goto LABEL023
  615.         Case "UP", "LEFT", "<"
  616.             AnsiPos INTEGER029, INTEGER032
  617.             Print TSTRING024(INTEGER032 - INTEGER020)
  618.             If (INTEGER021 == INTEGER031) Then
  619.                 INTEGER021 = INTEGER018
  620.                 INTEGER032 = INTEGER020 + INTEGER018 - INTEGER031
  621.             Else
  622.                 Dec INTEGER021
  623.                 Dec INTEGER032
  624.             Endif
  625.             AnsiPos INTEGER029, INTEGER032
  626.             Print STRING022, StripAtx(TSTRING024(INTEGER032 - INTEGER020))
  627.             Goto LABEL023
  628.         Case "Q", STRING010
  629.             AnsiPos INTEGER029, INTEGER032
  630.             Print TSTRING024(INTEGER032 - INTEGER020)
  631.             AnsiPos INTEGER033, INTEGER034
  632.             Return
  633.         Case "V", STRING023
  634.             DefColor
  635.             AnsiPos 1, 23
  636.             Gosub LABEL028
  637.             If (STRING020 <> "") Then
  638.                 If (Upper(STRING030) <> "NONE") Then
  639.                     If (Upper(STRING030) == "S") Then
  640.                         Dir "N S " + String(INTEGER021)
  641.                         Goto LABEL024
  642.                     Endif
  643.                     Dir "N " + STRING030 + " " + String(INTEGER021)
  644.                     :LABEL024
  645.                     Goto LABEL025
  646.                 Endif
  647.                 Dir String(INTEGER021)
  648.             Endif
  649.             :LABEL025
  650.             Gosub LABEL029
  651.             AnsiPos INTEGER029 + INTEGER030, INTEGER032
  652.         Case " "
  653.             AnsiPos INTEGER029 - 1, INTEGER032
  654.             If (BIGSTR001 <> "") Then
  655.                 BOOLEAN006 = 0
  656.                 Tokenize BIGSTR001
  657.                 STRING029 = ""
  658.                 While (1) Do
  659.                     STRING028 = GetToken()
  660.                     If (STRING028 == "") Break
  661.                     If (STRING028 <> INTEGER021) Then
  662.                         STRING029 = STRING029 + STRING028 + " "
  663.                         Continue
  664.                     Endif
  665.                     BOOLEAN006 = 1
  666.                     DefColor
  667.                     Print STRING027, Space(1)
  668.                 EndWhile
  669.                 If (BOOLEAN006) Then
  670.                     BIGSTR001 = STRING029
  671.                     AnsiPos INTEGER029 + INTEGER030, INTEGER032
  672.                     If (INTEGER021 <> INTEGER018) KbdStuff ">"
  673.                     Goto LABEL023
  674.                 Endif
  675.             Endif
  676.             Print STRING025
  677.             If (BIGSTR001 == "") Then
  678.                 BIGSTR001 = String(INTEGER021)
  679.                 Goto LABEL026
  680.             Endif
  681.             BIGSTR001 = BIGSTR001 + " " + String(INTEGER021)
  682.             :LABEL026
  683.             AnsiPos INTEGER029 + INTEGER030, INTEGER032
  684.             If (INTEGER021 <> INTEGER018) KbdStuff ">"
  685.             Goto LABEL023
  686.     End Select
  687.     Goto LABEL023
  688.     :LABEL027
  689.     STRING026 = ReadLine(PPEPath() + "dm.cfg", 2)
  690.     STRING026 = ReplaceStr(STRING026, "%NR%", Space(3))
  691.     STRING026 = ReplaceStr(STRING026, "%DESC%", Space(35))
  692.     STRING026 = ReplaceStr(STRING026, "%FILES_R%", Space(9))
  693.     STRING026 = ReplaceStr(STRING026, "%BYTES_R%", Space(15))
  694.     STRING026 = ReplaceStr(STRING026, "%FILES_L%", Space(9))
  695.     STRING026 = ReplaceStr(STRING026, "%BYTES_L%", Space(15))
  696.     Return
  697.     :LABEL028
  698.     For INT002 = 1 To 22
  699.         TSTRING031(INT002) = ScrText(1, INT002, 80, 1)
  700.     Next
  701.     TSTRING031(23) = ScrText(1, 23, 79, 1)
  702.     Return
  703.     :LABEL029
  704.     AnsiPos 1, 1
  705.     For INT002 = 1 To 23
  706.         Print TSTRING031(INT002)
  707.     Next
  708.     Return
  709.  
  710. ;------------------------------------------------------------------------------
  711. ;
  712. ; Usage report (before postprocessing)
  713. ;
  714. ; ■ Statements used :
  715. ;
  716. ;    7       End
  717. ;    3       Cls
  718. ;    3       Wait
  719. ;    181     Goto 
  720. ;    185     Let 
  721. ;    41      Print 
  722. ;    4       PrintLn 
  723. ;    105     If 
  724. ;    2       DispFile 
  725. ;    5       StartDisp 
  726. ;    14      DefColor
  727. ;    2       InputStr 
  728. ;    1       InputYN 
  729. ;    21      Gosub 
  730. ;    8       Return
  731. ;    4       Inc 
  732. ;    3       Dec 
  733. ;    10      Tokenize 
  734. ;    5       KbdStuff 
  735. ;    9       Dir 
  736. ;    48      AnsiPos 
  737. ;    1       FreshLine
  738. ;    1       SaveScrn
  739. ;    1       RestScrn
  740. ;    2       Redim 
  741. ;
  742. ;
  743. ; ■ Functions used :
  744. ;
  745. ;    3       *
  746. ;    8       %
  747. ;    93      +
  748. ;    41      -
  749. ;    60      ==
  750. ;    24      <>
  751. ;    8       <
  752. ;    11      <=
  753. ;    3       >
  754. ;    19      >=
  755. ;    95      !
  756. ;    22      &&
  757. ;    19      ||
  758. ;    3       Len(
  759. ;    22      Upper()
  760. ;    2       Left()
  761. ;    17      Space()
  762. ;    3       Chr()
  763. ;    2       Date()
  764. ;    2       YesChar()
  765. ;    11      StripAtx()
  766. ;    2       Strip()
  767. ;    2       Inkey()
  768. ;    12      String()
  769. ;    1       Mask_Num()
  770. ;    1       Mask_Ascii()
  771. ;    1       CurConf()
  772. ;    9       PPEPath()
  773. ;    2       ValDate()
  774. ;    1       PcbNode()
  775. ;    16      ReadLine()
  776. ;    31      GetToken()
  777. ;    6       Exist()
  778. ;    3       LangExt()
  779. ;    1       AnsiOn()
  780. ;    15      GetX()
  781. ;    8       GetY()
  782. ;    2       HelpPath()
  783. ;    1       TokCount()
  784. ;    4       ScrText()
  785. ;    12      ReplaceStr()
  786. ;    2       ToDate()
  787. ;    6       ToInteger()
  788. ;    1       IsNonStop()
  789. ;
  790. ;------------------------------------------------------------------------------
  791. ;
  792. ; Analysis flags : No flag
  793. ;
  794. ;------------------------------------------------------------------------------
  795. ;
  796. ; Postprocessing report
  797. ;
  798. ;    8       For/Next
  799. ;    4       While/EndWhile
  800. ;    50      If/Then or If/Then/Else
  801. ;    4       Select Case
  802. ;
  803. ;------------------------------------------------------------------------------
  804. ;                 AEGiS Corp - Break the routines, code against the machines!
  805. ;------------------------------------------------------------------------------
  806.